1. Field of the Invention
The present invention relates to a method for synchronization of processes in multiprocessor systems.
2. Description of the Related Art
A known problem in data processing systems having a plurality of processes is that of synchronization of the processes. Until now, common memory locations, called semaphores, have been used for this purpose. However, these have to be handled by specific machine instructions which cannot be interrupted or make the interruption identifiable. This problem has been dealt with in a large number of publications, for example in Section 2.2 "Interprocess Communication" of the book "Operating Systems: Design and Implementation" by Andrew S. Tanenbaum, Prentice-Hall 1987.
However, particularly in multiprocessor systems, there is a problem in providing a suitable, non-interruptable instruction. Furthermore, conventional programming languages do not support such instructions. Synchronization methods are thus also known in which the only requirement is for a loading instruction as other memory instruction to be carried out automatically. The methods known for this purpose are described, by way of example, in Section 3 of the book "Principles of Concurrent and Distributed Programming" by M. Ben-Ari, Prentice-Hall 1990, ISBN 0-13-711821-X.
The methods described there achieve the object that an item of equipment can only ever be used by one process at any given time, and all the other processes wait for their "turn in line".
However, when multiprocessor systems are being started, a different type of problem arises in the phase synchronization of concurrently running processes. In this case, the starting processes on the individual processors can admittedly run simultaneously, but they comprise a plurality of phases which are intended to run as simultaneously as possible, although no starting process is intended to commence the next phase before all the other processes have completed the current phase.